package com.yunban.project.template.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yunban.project.template.model.domain.Type;
import com.yunban.project.template.model.dto.TypeReq;
import com.yunban.project.template.model.dto.TypeSearchReq;
import com.yunban.project.template.model.vo.TypeResp;
import net.lab1024.sa.base.common.domain.PageResult;

import java.util.List;

/**
 * @author: lijiajun
 * @date: 2024-11-06
 * @version: 1.0
 */
public interface TypeService extends IService<Type> {

    /**
     * 根据code或name查询
     *
     * @param code code
     * @param name name
     * @return Type
     */
    Type findByCodeOrName(String code, String name);

    /**
     * 根据ID查询
     *
     * @param id 类型ID
     * @return Type
     */
    Type findById(long id);

    /**
     * 获取所有类型
     *
     * @return array
     */
    PageResult<TypeResp> getTypeList(TypeSearchReq req);

    /**
     * 新增模板类型
     *
     * @param req 类型参数
     * @return bool
     */
    Long saveType(TypeReq req);

    /**
     * 修改模板类型
     *
     * @param id  主键ID
     * @param req 类型参数
     * @return bool
     */
    Boolean editType(long id, TypeReq req);

    /**
     * 删除模板类型
     *
     * @param id 主键ID
     * @return bool
     */
    Boolean delType(long id);
}
